chore: prepare MCPAudit 2.5.0 release candidate - #171
Conversation
Agent Permission Diff
Gate DecisionMax severity high is recorded but observe mode never fails. FindingsHIGH APD002: OIDC token permission addedA workflow gained Reviewer decision: Confirm this is paired with a protected, intended deployment path. Evidence:
Permission Changes
|
|
@codex review Use light reasoning. Review exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f7d9e11c8d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Agent Permission Diff disposition for exact head
|
|
@codex review Use light reasoning. Re-review exact repaired head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 37aa80f887
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Use light reasoning. Re-review exact repaired head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 65fe5519af
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Use light reasoning. Review exact repaired head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fccd80b462
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Use light reasoning. Final re-review of exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2db2cada38
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Use light reasoning. Final exact-head review of |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review Light reasoning only. Review exact head |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review Use light reasoning. Review exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aa0144d22b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Use light reasoning. Review exact head |
|
Codex Review: Didn't find any major issues. Hooray! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Exact-head closeout for
|
Summary
Prepare MCPAudit 2.5.0 as a reviewable, intentionally non-publishable release candidate. The candidate packages Proof Before Action and the security repairs already landed on
main, aligns package/server/changelog metadata, and separates tag creation from PyPI publication with an exact tag/commit-bound manual workflow.Changes
pyproject.toml,server.json,uv.lock, CLI tests, and the changelog.docs/release-state.json.v2.4.0while candidate state is non-publishable.server.jsonregistry metadata on published 2.4.0 until the separately reviewed release-state transition, so registry clients never receive an unavailable package version.proof-before-action --versionconsistently with the sibling commands.v*tag publication with a manual workflow that requires live non-bypassable independent environment review, an exact tag, an exact 40-character landed commit, full quality gate, clean package provenance, retained artifacts, and hash readback before the OIDC-enabled publish job.scripts/verify_release.pyand regression coverage for metadata, candidate fail-closed behavior, publication triggers, OIDC authority placement, public-version examples, and the newly used pinned artifact actions.Checklist
uv run pytest,uv run ruff check,uv run mypy .)[Unreleased]Security implications
The candidate retains
mcp>=1.28.1and immutable external Action pins. A security-focused diff review found one Medium/P2 supply-chain authorization gap in the previous workflow: pushing av*tag automatically obtained PyPI publication authority despite the documented separate-approval boundary. This PR removes the tag trigger and makes candidate state mechanically non-publishable.Unknown, stale, masked, unmatched, incomplete, unobservable, dirty, or authority-unverified Proof Before Action evidence remains non-authoritative. The Docker observer is not a general sandbox guarantee and intentionally accepts only bounded UTF-8 repository inputs plus explicitly named synthetic SQLite fixtures.
Residual release risks are preserved, not closed cosmetically:
pypienvironment currently has no required reviewer and permits administrator bypass;Those limitations do not block merging an intentionally non-publishable candidate, but public release remains NO-GO until the exact candidate is separately authorized, the environment has independent reviewer protection, and the human-review risk is satisfied or explicitly accepted.
Test plan
uv run pytest: 1022 passeduv run pytest tests/test_proof_before_action.py -q: 125 passeduv lock --check, andgit diff --check: passmcp>=1.28.1, clean producer provenance, content hygiene, embedded README, and three entry points verifiedmcp-audit,mcp-audits, andproof-before-actionall report 2.5.0Exact candidate artifacts from commit
6cc0cafbc9c081bfeb876185f3d6aa7e7461db9e:5216112e4ecd17af80e10f716cc7bad1a6ae5d317f0ee53c97303172e42c548522515475987c8987b61e9b6d4c8e104eaa6e49c01989341f522e8dd913518083A fresh exact-head Codex Security scan is requested for
6cc0cafbc9c081bfeb876185f3d6aa7e7461db9eand remains required before merge; an earlier working-tree scan was correctly failed after remediation changed its snapshot.Compatibility and rollback
2.5.0 is an additive minor release for Python 3.11–3.13 and keeps the 2.x report/SARIF compatibility policy. Existing consumers must allow
mcp>=1.28.1.Prefer reverting consuming configuration while retaining 2.5.0. If an emergency package rollback to 2.4.0 is unavoidable, also constrain
mcp>=1.28.1and read back both resolved versions; the existingv2.4.0Action/pre-commit tag is not represented as a security-safe rollback.Publication boundary
This PR does not authorize or perform a tag, GitHub Release, PyPI publication, deployment, or external registry/trust-source change. Finalizing release state, creating the tag, and manually dispatching publication require separate exact authorization after the landed commit and live protection state are reverified.
Related issues
N/A